Automated creation of web page to XML translation servers

ABSTRACT

A method for mapping information entered through a GUI program to an XML message, includes parsing information entered through the GUI program to extract one or more data elements, mapping the data elements to XML data, the mapping being performed according to predetermined criteria and assembling the XML data to an XML message.

REFERENCE TO RELATED APPLICATION

The present disclosure is based on and claims the benefit of ProvisionalApplication Ser. No. 60/573,451 filed May 21, 2004, the entire contentsof which are herein incorporated by reference.

BACKGROUND

1. Technical Field

The present disclosure relates to web server creation and, morespecifically, to automated creation of web page to XML translationservers.

2. Description of the Related Art

Web based applications, for example, web services, are quicklytransforming the way modern businesses interact and share information.Web services are software systems for providing particular functionalityover a computer network, for example, the Internet. Web services cangenerally be identified by Universal Resource Identifiers (URI) in afashion that may be analogous to the way websites may be identified byUniform Resource Locators (URLs). Web services generally contain publicinterfaces and bindings that enable human users and other softwaresystems such as other web services to utilize the functionality of theweb services. In this way, web services enhance the way computerscommunicate with users and each other.

Graphical User Interfaces provide a way to communicate information toand from a user. A GUI may be in the form of web pages, allowing a userto read and manipulate data on a web browser. Since web pages arewritten in the standard language HTML, and since most personal computershave a web browser installed, a GUI in the form of a web page isconvenient and popular. Web browsers use the HTTP protocol to receiveand to send data to web servers.

Extensible Markup Language (XML) is a popular language by which webservices communicate with one another and with human users. XML is ahuman readable programming language. XML instructions can be read andunderstood by a human, as opposed to, for example, computer languagesthat send instructions as binary data.

Because XML is human readable, instructions formulated in XML may beread and interpreted by any computer utilizing any platform. This standsin contrast to computer languages, such as assembly language, that arehardware specific and not human readable. This ability to be interpretedacross platforms makes XML a very good tool for communicating with webservices.

Unlike Hypertext Markup Language (HTML) where programs use predefinedmarkup symbols to describe data that is communicated, XML allows for theuse of customized markup symbols that may be user defined. Definitionsof customized XML markup symbols comprise an XML schema. The XML schemais therefore an important element for interpreting data communicatedusing XML.

While data communicated in XML, for example, data that has been providedto a user from a web service, may be human readable, raw XML data maynot be easily understood by the average user who is not a computerprogrammer. It is therefore desirable to use a GUI to display XML datain a more palatable format.

A GUI may be developed for interpreting XML data from a particular webservice. The GUI may be programmed to display anticipated data elementsin a predefined format. Many GUIs are web browser based, allowing a userto view XML data via a web browser. However, GUIs, for example webbrowser based GUIs, may be difficult and/or time consuming to develop.Additionally, these GUIs are generally specific for displaying data froma particular data source, for example, a particular web service. After aGUI has been developed, the GUI is reprogrammed when the user desires tochange the look and/or feel of the GUI.

It is therefore desirable to be able to automatically interpret XML dataand automatically generate a suitable GUI for displaying the interpretedXML data in a sensible and customizable format.

Java Architecture for XML Binding (JAXB), from Sun Microsystems, as wellas the Castor project (castor.org) allow for the parsing and conversionof XML data into Java. This system allows XML data to be interpreted andconverted into a set of Java classes so XML data can be displayed andmanipulated in Java. However, a GUI may still have to be programmed toimplement the display and manipulation of the data.

HTML documents may include data, such as text, as well as markup symbols(tags) that may communicate details about how the data is to bedisplayed. An HTML browser, such as a web browser, is able interpret thetags and use them to display the HTML data in an appropriate fashion.HTML data can be used to describe the basic format of a user interface,such as the color and font of text as well as the size and position oflinks and controls. However, HTML does not have the versatility of XML.HTML, while suitable for the display of standard web pages, may not besuitable for the communication of web service data. Additionally, theuser interface of HTML data is generally pre-programmed by an HTMLprogrammer and as such a GUI is not automatically generated.

More recent approaches have been developed for the description of GUIsusing XML based languages. For example, User Interface Markup Language(UIML) is an XML based language for defining user interfaces. Howeverthese XML based GUI description languages still require significantprogrammer input to design the various GUI details such as itemplacement, colors, page layout and so on.

There is therefore a need for a way of automatically generating a userinterface for the display and manipulation of data, for example XMLand/or web service data, even when no user interface information isincluded in the data.

The present disclosure provides a method for automatic generation of aGUI program from a XML schema. The GUI program may be a web page,allowing the user to read and manipulate data on a web browser.

Once a GUI program is created, it is desirable to provide a two-wayinteractive communication between the GUI and the web service. Toachieve this, it is desirable that a server program (or server programs)perform a translation function between the GUI and the XML web service.A server program will take the data the user created or changed througha web page and map it to an XML message, to be sent to the web service.The data the user created on the web page may be obtained from an HTTPGET or POST operation derived from the HTML web page form. If a responsefrom the web service comes, a server program will take the XML messageand transform it to HTML information to be displayed on the web GUI.These server programs are referred to as “translation servers”. However,manually writing these server programs from scratch for every webservice message is repetitive, cumbersome and error prone.

As noted above, a number of tools (e.g. ‘Castor’ from castor.org, ‘JAXB’from sun.com) provide for automatic creation of Java classes from XMLschema. These Java classes provide programmers with an automated way oftranslating XML data into data structures that can be easily used withina program. However, these schema derived Java classes are simplycontainers for data, and do not provide any automated way for processingHTTP data from a web page GUI to construct the final XML. This step isstill done manually.

There are also numerous tools (e.g. Apache Axis and Microsoft .NET) thatwill construct XML descriptions from existing server programs. However,there is no corresponding mechanism to do the reverse step, toautomatically create server programs from XML descriptions. The presentpractice is to do the writing manually.

There is therefore a need for a way of automatically generating serverprograms that will translate data created through a GUI, specifically,data derived from a web page, to an XML message, to be sent to the webservice, and also to do the reverse mapping of XML messages toinformation to be displayed in the GUI. There is a need for a way forallowing two-way interactive communication between the web page and theweb service.

SUMMARY

A method for mapping information entered through a GUI program to an XMLmessage comprises parsing information entered through the GUI program toextract one or more data elements, mapping the data elements to XMLdata, the mapping being performed according to predetermined criteriaand assembling the XML data to an XML message.

A method for mapping an XML message to information that is expected by aGUI program, comprises extracting raw XML data from an XML message,mapping the XML data to relevant data elements, the mapping beingperformed according to predetermined criteria and assembling the dataelements to information that is expected by a GUI program.

A method for automatic provision of a GUI and a two-way communicationbetween said GUI and a XML aware application, comprises generating a GUIprogram from XML data and creating at least one translation serverprogram that performs mapping between XML messages to or from the XMLaware application, and information obtained from or destined for the GUIprogram.

A system for mapping information entered through a GUI program to an XMLmessage, comprises parsing the information entered through the GUIprogram to extract one or more data elements, mapping the data elementsto XML data, the mapping being performed according to predeterminedcriteria and assembling the XML data to an XML message.

A system for automatically generating server program code that maps anXML message to information that is expected by a GUI program, comprisesan extracting unit for extracting XML data from an XML message, amapping unit for mapping the XML data to relevant data elements, themapping being performed according to predetermined criteria and anassembling unit for assembling the relevant data elements to informationthat is expected by a GUI program.

A system for automatic provision of a GUI and a two-way communicationbetween said GUI and a XML aware application, comprises a generatingunit for automatically generating a GUI program from XML data and acode-generation unit for automatically generating at least onetranslation server program that performs mapping between XML messages toor from the XML aware application, and information obtained from ordestined for the GUI program.

A computer system comprising a processor and a computer recording mediumincluding computer executable code executable by the processor formapping information entered through a GUI program to an XML message,said computer executable code comprising code for parsing informationentered through the GUI program to extract one or more data elements,code for mapping the data elements to XML data, the mapping beingperformed according to predetermined criteria and code for assemblingthe XML data to an XML message.

A computer system comprising a processor and a program recording mediumincluding computer executable code executable by the processor formapping an XML message to information that is expected by a GUI program,said computer executable code comprising code for extracting raw XMLdata from an XML message, code for mapping the XML data to relevant dataelements, the mapping being performed according to predeterminedcriteria and code for assembling the data elements to information thatis expected by a GUI program.

A computer system comprising a processor and a computer recording mediumincluding computer executable code executable by the processor forautomatic provision of a GUI and a two-way communication between thesaid GUI and a XML aware applications said computer executable codecomprising code for generating a GUI program from XML data and code forcreating at least one translation server program that performs mappingbetween XML messages to or from the XML aware application, andinformation obtained from or destined for the GUI program.

BRIEF DESCRIPTION OF THE DRAWINGS

A more complete appreciation of the present disclosure and many of theattendant advantages thereof will be readily obtained as the samebecomes better understood by reference to the following detaileddescription when considered in connection with the accompanyingdrawings, wherein:

FIG. 1 is an example of XML data that may be sent by a web service;

FIG. 2 is an example of a GUI element created to show the statementinstance described in the XML data of FIG. 1 according to an embodimentof the present disclosure;

FIG. 3 is an example of a GUI element showing statement instances;

FIG. 4 is an example of multiple GUI windows that may be opened at thesame time according to an embodiment of the present disclosure;

FIG. 5 is an example of a GUI element with forward and back navigationfunctions according to an embodiment of the present disclosure;

FIG. 6 is an example of a GUI element where the four field names havebeen simplified by merging a description with the automatically createdGUI from FIG. 2;

FIG. 7 is a flowchart showing the automatic generation of a GUI from XMLdata according to an embodiment of the present disclosure;

FIG. 8 depicts a translation server according to an embodiment of thepresent disclosure;

FIG. 9 shows exemplary data of a simple bank transaction;

FIG. 10 shows XML data corresponding to the data depicted in FIG. 9;

FIG. 11 shows an XML template according to an embodiment of the presentdisclosure;

FIG. 12 shows an XML response message according to an embodiment of thepresent disclosure;

FIG. 13 shows a template for extracting key data from the XML responsemessage, according to an embodiment of the present disclosure; and

FIG. 14 is an exemplary computer system capable of implementing variousembodiments of the present disclosure.

DETAILED DESCRIPTION

In describing the preferred embodiments of the present disclosureillustrated in the drawings, specific terminology is employed for sakeof clarity. However, the present disclosure is not intended to belimited to the specific terminology so selected, and it is to beunderstood that each specific element includes all technical equivalentswhich operate in a similar manner.

Embodiments of the present disclosure can automatically generate aGraphical User Interface (GUI) for the display and manipulation of data,for example XML and/or web service data, even when no user interfaceinformation is included in the data.

While this XML data is human readable, users who are not computerprogrammers may have a very difficult time making sense of the data, andmay not be able to adequately manipulate the data into a desired form.However, the highly-standardized nature of XML may be used as a basisfor which a GUI may be automatically generated.

XML includes various basic markup symbols that represent variousprimitive data types. These primitive data types may include, forexample: string, boolean, decimal, float, double, duration, dateTime,time, date, etc. A more complete list of primitive XML data types aredescribed in the XML Schema Specification, as set by the World Wide WebConsortium. XML data may include one or more data elements that may bedefined by primitive data types. For example, a data element calledtotalWeight may have a decimal data type and a value of 37×10⁻⁴.

As stated above, XML allows for the definition of custom markup symbolsthat correspond with custom data types. Custom data types may be morecomplex than the primitive data types. Custom data types may be formedfrom various combinations of primitive data types. For example, a datatype called personnelFile may be made up of an employee name dataelement called employeeName that may have a string data type and a valueof “Jim”, a date-of-birth data element called dateOfBirth that may havea date data type and a value of 1975-05-14, and a social security numberdata element called socialSecurity that may have a decimal data type anda value of 567287364×10⁰.

Embodiments of the present disclosure automatically parse and interpretthe XML data to isolate the data type and value of data elements withinthe XML data. For example, if XML data included an element with atotalWeight data type, parsing the data would include determining thepresence of a data element with a data type of totalWeight, determiningthat the data type is a decimal, and determining that the value of thisdata element is 37×10⁻⁴.

Where the XML data to parse includes a data element with a custom datatype such as personnelFile, parsing the XML data would include parsingeach data element with a primitive data type within the data elementwith the custom type, and then parsing the data element with the customtype with respect to the primitive data types.

A GUI element may be automatically created for each data element withinthe XML data in accordance with pre-determined criteria. A basic GUIelement may be a screen or a window that displays the data element in amanner that is consistent with the data element's data type. A basic GUIelement may also provide for the manipulation of the displayed data. Forexample, displayed data may be sorted, altered, printed, saved, etc.

Basic GUI elements can be automatically generated for the display of XMLdata by creating a GUI element for each data element having a primitivedata type. For example, a text field may be generated for displayingstring data, a numeric field may be generated for displaying decimaldata, and a calendar may be generated for displaying date data. Forexample, one way to create a basic GUI element is to apply apre-programmed basic GUI element to the data element based on itsprimitive data type where a pre-programmed basic GUI element isavailable for each primitive data type defined

Custom GUI elements can be automatically generated for the display ofXML data by automatically creating a GUI element for each element ofdata having a custom data type. Because custom data types are generallyformed from various combinations of primitive data types, custom GUIelements can be generated using various combinations of primitive GUIelements. For example, a GUI element generated for data having apersonelFile data type, as described above, may be a window displaying aheading titled “personelFile” along with a text field labeled“employeeName” for displaying string data; a numeric field labeled“socialSecurity” for displaying decimal data, and a calendar fieldlabeled “dateOfBirth” for displaying date data. The fields may be filledin with their respective values.

Custom GUI elements may display data elements in the same order as theyare listed in the XML data. In addition, the names of the data elementsmay be displayed along with the GUI elements to give the listed GUIelements some basic context.

FIG. 1 is an example of XML data 100 that could be sent by a webservice. The XML data 100-128 describes a financial transactionstatements (TransactionStatement) data element having one statementinstance (Statementinstance) data element 105-127. The statementinstance data element 105-127 has a transaction amount(TransactionAmount) data element 106-108, transaction source(TransactionSource) data element 109-114, transaction destination(TransactionDestination) data element 115-120, and a transaction date(TransactionDate) data element 121-126. The statement instance 105-127is of a custom data type made up of data elements defined by primitivedata types. Here, transaction amount may be a decimal data type 107,transaction source may be a string data type 112, transactiondestination may be a string data type 118, and transaction date may be adateTime data type 124.

FIG. 2 is an example GUI element that can show the statement instance105-127 according to an embodiment of the present disclosure. A GUIelement for displaying a transaction statement 20 is automaticallycreated. Four field names 21 are created for each of the four dataelements that may appear as part of the statement instance 105-127. Fourfields 22 are created for displaying the values associated with each ofthe four data elements. These fields may be programmed to display theassociated XML data elements in a manner that is appropriate for theirprimary data types. For example, transaction amount may be a decimaldata type and may therefore be displayed as a number.

XML data may be hierarchical. For example, a transaction statement mayinclude multiple statement instances that are nested within thetransaction statement. Where multiple statement instances exist, a GUIelement may automatically be created that lists all of the statementinstances, however, the GUI element need not display the data elementsthat comprise the listed statement instances. Each statement instancemay be expandable such that when selected by a user, the data elementswithin the selected statement instance may be displayed.

FIG. 3 is an example GUI element 30 showing four statement instances 31.If each statement instance is named within the XML data, those names mayappear in corresponding value fields 32. Alternatively, the first dataelement value within the statement instance is displayed in thecorresponding value field. For example, the transaction amount dataelement value may be displayed. When a particular instance is selectedby the user, a GUI element representing that particular statementinstance data element may be displayed as shown in FIG. 2.

Expanded GUI elements may be collapsible. By collapsing a GUI element, auser may return to the GUI element listing statement instances 30. Byexpanding and collapsing GUI elements, a user may navigate throughdisplays of hierarchical data.

Alternatively, expanding GUI elements may open new GUI element windowswhile leaving the original GUI window present. GUI windows may then beclosed by the user as desired. FIG. 4 is an example of multiple GUIwindows 40-43 that may be open at the same time.

GUI Wizards may be used to present GUI elements to the user. Forexample, GUI elements may be displayed to the user sequentially alongwith navigation information. Here complex data may be presented asstages, each stage being displayed separately. Navigation functions suchas “forward”, “back”, and/or “stage x of N” may be provided. FIG. 5 isan example of a GUI element 50 with forward 51 and back 52 navigationfunctions.

According to embodiments of the present disclosure, GUI elements arecreated automatically based on the XML data. This has the advantage ofensuring that all XML data elements may be displayed unlike manuallycreated GUIs that may contain errors or omissions.

While GUI elements may be automatically created, it may still bepossible for a user to adjust the manner in which XML data is displayed.According to some embodiments of the present disclosure, a user maycustomize display settings. According to one such embodiment, the usermay manually adjust the code of the automatically generated GUI after ithas been generated. According to another such embodiment, the user maycreate a separate description of the required changes, for example asXML code, and these changes may be merged into the automaticallygenerated GUI. This embodiment has the advantage of allowing thedescription to be merged with any number of automatically created GUIswithout having to recreate the description. Descriptions may be used toadjust any display settings or provide for additional GUI functionality.For example, descriptions may be used to provide help menus, expandeddescriptions of GUI elements, changes to layouts, for example, fontcolors, links to other products and programs, and branding and marketinglogos and links. FIG. 6 depicts an example GUI element 60 where the fourfield names 61 have been simplified by merging a description with theautomatically created GUI from FIG. 2.

FIG. 7 is a flowchart showing the automatic generation of a GUI from XMLdata according to an embodiment of the present disclosure. First, theXML data is automatically parsed (Step S70). This may includeidentifying various data elements from the XML data, identifying a datatype of each of the various identified data elements, and identifyingvalues for each of the various identified data elements.

Next, GUI elements are generated to display the identified data elements(Step S71). Each GUI element may be automatically generated to displaythe data elements in a manner appropriate for its data type. Where dataelements may be hierarchical, respective GUI elements may display thedata elements as expandable and/or collapsible. Navigation tools mayalso be provided for the user to easily navigate the various GUIelements.

The created GUI elements may be combined to form a GUI program for theXML data (Step S72). This GUI program may be written in a computerlanguage, such as, for example, Java. The created GUI program mayincorporate tools for manipulating the displayed data.

Finally, the GUI program may be merged with a description of customizedfeatures (Step S73). This description may be a file created by a userthat incorporates customizations that the user would like to apply tothe GUI program.

A web service is an XML aware application, usually accepting XML dataembedded in Simple Object Access Protocol (SOAP).

As noted above, although XML data is human readable, users who are notcomputer programmers may have a very difficult time manipulating data inXML form. Therefore, it is desirable to provide GUIs, specifically, webpages, for users to interact with web services. To do this, atranslation server receives data obtained from web pages, maps the datato XML message, and sends the message to a web service. When an XMLresponse message is received, the translation server does the reversemapping and sends the received data to the web interface.

The highly-standardized nature of XML allows automatic generation of thecore code of the translation server. Such automatically generatedtranslation servers can produce complete, legal XML messages, avoidingthe risk that developers may accidentally make mistakes in writing theserver program, or leave functionality out due to time pressures.

Embodiments of the present disclosure automatically generate translationserver programs that can take information from a web page and map it toan XML message, which can then be sent to a web service. The informationcan be obtained from an HTTP GET or POST operation derived from an HTMLweb page form. When an XML response message is sent from the webservice, the translation server maps it to an HTTP based message andsends it to the web browser. Therefore, embodiments of the presentdisclosure provide the relatively automatic generation of translationserver programs that enable a two-way interactive communication betweena web page and a web service.

FIG. 8 illustrates an embodiment of the present disclosure showing therelationship between the translation server, the web page, and the webservice, showing the basic functions performed by a translation server80. As shown, the translation server 80 takes information from user GUI82, maps HTTP data to XML fragments (84), constructs the full XMLmessage 82, and sends it to the destination server 88 in this casetarget web service 90. Translation server 80 also receives replies 92from target web service 90, extracts specific data from the XML message94 and returns it 96 to user GUI 82.

As described earlier, a GUI program such as, for example, a web page,can be automatically generated for the display of XML data. The presentdisclosure also provides a relatively automated construction of aninteractive user interface for a web service.

FIG. 9 is an example of a GUI 82 including data representing a simplebank transaction. Presented in a web page form, it is very easy for theuser to view and manipulate the presented data. This compares favorablywith the XML representation of the data, illustrated in FIG. 10. In FIG.10, the XML data 300-328 describes a financial transaction statements(TransactionStatement) data element having one statement instance(Statementinstance) data element 305-327. The statement instance dataelement 305-327 has a transaction amount (TransactionAmount) dataelement 306-308, transaction source (TransactionSource) data element309-314, transaction destination (TransactionDestination) data element315-320, and a transaction date (TransactionDate) data element 321-326.The statement instance 305-327 is a custom data type made up of dataelements defined by primitive data types. Here, transaction amount maybe a decimal data type 307, transaction source may be a string data type312, transaction destination may be a string data type 318, andtransaction date may be a dateTime data type 324. The XML example codecontains further information, such as the transaction date, the currencytype, and so on, but this information can usually be added by theprogram without explicitly asking the user.

Once the user enters the information requested by the GUI 82, theinformation is sent to the translation server 80 via a HTTP GET or POSToperation. The translation server 80 will parse the HTTP message andextract the data elements. In this example, this involves parsing theHTML form data to extract the Name, the Amount, and the Destination Bankdata elements. Parsing an HTTP message can be done in a standard manner.The present system may generate code to parse messages.

The translation server 80 then maps the data elements into XML data.This may be performed in a number of ways. For example, one way is touse a text template method. FIG. 1I is an example of such a template,where the text string “amount” is a place holder tag alerting the serverto replace the tag with a value. There are a number of standard computerscience techniques for writing such templates. Once the translationserver has extracted the Amount data element, it can replace the placeholder tag with the data value. When all three data elements have beenmerged with the template, the result is the XML data shown in FIG. 10.

Another way of performing mapping is to utilize automatically generatedcode representing the XML data structure and fill in the data structurewith data elements extracted in the previous step. The code representingthe XML data structure may be a Java class automatically generated fromthe XML schema. Tools such as ‘Caster’ from the Apache organization and‘JAXB’ from Sun Microsystems can perform this code generation. The Javaclass generated is a data container, representing the XML data structure(the “Document Object Model Tree”, or the “DOM Tree”). The data elementsextracted from the previous step can then be used to initialize the dataobjects contained in the Java container class. The Java data objects canthen be used to generate the XML data file.

In both of these mapping methods, the server program does not need to bemanually coded, resulting in significant labor savings. Usingautomatically generated Java objects (e.g. from JAXB) may simplifythings further as there will be no need to create the text templates,and the objects may be automatically recreated whenever the schemachanges.

The mapping from the information obtained from a web page to XML data isperformed according to predetermined criteria. In other words, themapping is possible because there is a predetermined relationshipbetween the information obtained from the web page and the correspondingXML schema. In the case where the web page is generated from XML datautilizing one or more of the above-described embodiments, this mappingcriteria can be determined in accordance with the process of GUI programgeneration described.

Some extra work may be required to initialize environment variables(such as the current date). In the case of templates, standard methodsmay be used to insert date and time values. In the case of JAXB createdobjects, standard code libraries can be created to automaticallyinitialize environment variables such as the current date.

Once the XML data is created, an XML message can be assembled from theXML data. This may involve adding message headers (such as HTTP headersor SOAP headers) to the raw XML data. Code generation for thisassembling function is possible due to the standard nature of theassembly. The XML message may then be sent via HTTP/SOAP or theequivalent to the destination web service. The location of thedestination of the web service may be pre-configured, or it can beobtained by standard techniques such as interrogation of a UDDI server.

FIG. 12 is an example of an XML response message sent by the web service90. Translation server 80 transforms the XML data into a form that canbe received and displayed by the web GUI 82.

The mapping of raw XML data to relevant data elements may be performedin a number of ways. For example, a template may be used to extract keydata from the XML data. FIG. 13 shows a template according to anembodiment of the present disclosure, which contains wild cards and tags603, 606 for key data positions. The XML data is processed until a matchfor the key data is obtained and that data extracted. Another example isto use a XML stylesheet transformation. This transformation performs thesame function as the template method, but in a standard manner usingstandard tools. Yet another example involves parsing the XML data usingautomatically generated code (e.g. via JAXB). Once the XML data isparsed, relevant user data may be extracted directly from pre-determinedcode objects.

The data fragments extracted from the mapping can then be passed back tothe user. The data fragments may be assembled into an HTTP based messageor information format and passed to a subsidiary server that wouldassemble the web page HTML. This could also be done via an XSLTstylesheet.

The present disclosure thus provides for the automatic generation of webGUI programs based on XML data. In addition, the present disclosureprovides for the automated generation of translation server code,allowing a two-way interactive communication between the web GUI and theweb service. This provides a relatively automated construction of aninteractive user interface for a web service.

FIG. 14 shows an example of a computer system which may implement themethod and system of the present disclosure. The system and method ofthe present disclosure may be implemented in the form of a softwareapplication running on a computer system, for example, a mainframe,personal computer (PC), handheld computer, server, etc. The softwareapplication may be stored on a recording media locally accessible by thecomputer system and accessible via a hard wired or wireless connectionto a network, for example, a local area network, or the Internet.

The computer system referred to generally as system 1000 may include,for example, a central processing unit (CPU) 1001, random access memory(RAM) 1004, a printer interface 1010, a display unit 1011, a local areanetwork (LAN) data transmission controller 1005, a LAN interface 1006, anetwork controller 1003, an internal buss 1002, and one or more inputdevices 1009, for example, a keyboard, mouse etc. As shown, the system1000 may be connected to a data storage device, for example, a harddisk, 1008 via a link 1002.

The above specific embodiments are illustrative, and many variations canbe introduced on these embodiments without departing from the spirit ofthe disclosure or from the scope of the appended claims. For example,elements and/or features of different illustrative embodiments may becombined with each other and/or substituted for each other within thescope of this disclosure and appended claims.

The above specific embodiments are illustrative, and many variations canbe introduced on these embodiments without departing from the spirit ofthe disclosure or from the scope of the appended claims. For example,elements and/or features of different illustrative embodiments may becombined with each other and/or substituted for each other within thescope of this disclosure and appended claims.

1. A method for mapping information entered through a GUI program to anXML message, comprising: parsing information entered through the GUIprogram to extract one or more data elements; mapping the data elementsto XML data, the mapping being performed according to predeterminedcriteria; and assembling the XML data to an XML message.
 2. The methodof claim 1, wherein mapping the data elements to XML data comprisesmerging the data elements with a XML text template.
 3. The method ofclaim 1, wherein mapping the data elements to XML data comprisesinitializing an XML data container with the data elements and using theinitialized XML data container to generate XML data, wherein said XMLdata container is software code automatically generated from an XMLschema.
 4. The method of claim 1, wherein the GUI program comprises aweb page, and the information is obtained from an HTTP GET or POSToperation.
 5. A method for mapping an XML message to information that isexpected by a GUI program, comprising: extracting raw XML data from anXML message; mapping the XML data to relevant data elements, the mappingbeing performed according to predetermined criteria; and assembling thedata elements to information that is expected by a GUI program.
 6. Themethod of claim 5, wherein mapping the XML data to relevant dataelements comprises matching the XML data with an XML text template. 7.The method of claim 5, wherein mapping the XML data to relevant dataelements comprises mapping by a standard XML stylesheet transformation(XSLT).
 8. The method of claim 5, wherein mapping the XML data torelevant data elements comprises parsing the XML data usingautomatically generated code and extracting data elements frompredetermined code objects.
 9. The method of claim 5, wherein the GUIprogram comprises a web page, and the result of the mapping isinformation that can be sent by a HTTP GET or POST operation.
 10. Amethod for automatic provision of a GUI and a two-way communicationbetween the said GUI and a XML aware application, comprising: generatinga GUI program from XML data; and creating at least one translationserver program that performs mapping between XML messages to or from theXML aware application, and information obtained from or destined for theGUI program.
 11. A system for mapping information entered through a GUIprogram to an XML message, comprising: parsing the information enteredthrough the GUI program to extract one or more data elements; mappingthe data elements to XML data, the mapping being performed according topredetermined criteria; and assembling the XML data to an XML message.12. The system of claim 11, wherein mapping the data elements to XMLdata comprises mapping by merging the data elements with a XML testtemplate.
 13. The system of claim 11, wherein mapping the data elementsto XML data comprises mapping by initializing an XML data container withthe data elements and using the initialized data container to generateXML data, wherein said data container is software code automaticallygenerated from the XML schema.
 14. The system of claim 11, wherein theGUI program is a web page, and the information is obtained from an HTTPGET or POST operation.
 15. A system for automatically generating serverprogram code that maps an XML message to information that is expected bya GUI program, comprising: an extracting unit for extracting XML datafrom an XML message; a mapping unit for mapping the XML data to relevantdata elements, the mapping being performed according to predeterminedcriteria; and an assembling unit for assembling the relevant dataelements to information that is expected by a GUI program.
 16. Thesystem of claim 15, wherein the mapping unit for mapping the XML data torelevant data elements matches the XML data with an XML text template.17. The system of claim 15, wherein the mapping unit for mapping the XMLdata to relevant data elements performs a standard XML stylesheettransformation (XSLT).
 18. The system of claim 15, wherein the mappingunit for mapping the XML data to relevant data element parses the XMLdata using automatically generated code and extracts data elements frompredetermined code objects.
 19. The system of claim 15, where the GUIprogram comprises a web page, and the result of the mapping isinformation that can be sent by a HTTP GET or POST operation.
 20. Asystem for automatic provision of a GUI and a two-way communicationbetween the said GUI and a XML aware application, comprising: agenerating unit for automatically generating a GUI program from XMLdata; and a code-generation unit for automatically generating at leastone translation server program that performs mapping between XMLmessages to or from the XML aware application, and information obtainedfrom or destined for the GUI program.
 21. A computer system comprising:a processor; and a computer recording medium including computerexecutable code executable by the processor for mapping informationentered through a GUI program to an XML message, said computerexecutable code comprising: code for parsing information entered throughthe GUI program to extract one or more data elements; code for mappingthe data elements to XML data, the mapping being performed according topredetermined criteria; and code for assembling the XML data to an XMLmessage.
 22. The computer system of claim 21, wherein the code formapping the data elements to XML data comprises code for merging thedata elements with a XML test template.
 23. The computer system of claim21, wherein code for mapping the data elements to XML data comprisescode for initializing an XML data container with the data elements andusing the initialized data container to generate XML data, wherein saiddata container is software code automatically generated from an XMLschema.
 24. The computer system of claim 21, where the GUI program is aweb page, and the information is obtained from an HTTP GET or POSToperation.
 25. A computer system comprising: a processor; and a programrecording medium including computer executable code executable by theprocessor for mapping an XML message to information that is expected bya GUI program, said computer executable code comprising: code forextracting raw XML data from an XML message; code for mapping the XMLdata to relevant data elements, the mapping being performed according topredetermined criteria; and code for assembling the data elements toinformation that is expected by a GUI program.
 26. The computer systemof claim 25, wherein the code for mapping the XML data to relevant dataelements comprises code for mapping by matching the XML data with an XMLtest template.
 27. The computer system of claim 25, wherein the code formapping the XML data to relevant data elements comprises code formapping by a standard XML stylesheet transformation (XSLT).
 28. Thecomputer system of claim 25, wherein the code for mapping the XML datato relevant data elements comprises code for mapping by parsing the XMLdata using automatically generated code and extracting data elementsfrom predetermined code objects.
 29. The computer system of claim 25,wherein the GUI program is a web page, and the result of the mapping isinformation that can be sent by a HTTP GET or POST operation.
 30. Acomputer system comprising: a processor; and a computer recording mediumincluding computer executable code executable by the processor forautomatic provision of a GUI and a two-way communication between thesaid GUI and a XML aware application, said computer executable codecomprising: code for generating a GUI program from XML data; and codefor creating at least one translation server program that performsmapping between XML messages to or from the XML aware application, andinformation obtained from or destined for the GUI program.
 31. Acomputer recording medium including computer executable code for mappinginformation entered through a GUI program to an XML message, saidcomputer executable code comprising: code for parsing informationentered through the GUI program to extract one or more data elements;code for mapping the data elements to XML data, the mapping beingperformed according to predetermined criteria; and code for assemblingthe XML data to an XML message.
 32. The computer recording medium ofclaim 31, wherein the code for mapping the data elements to XML datacomprises code for merging the data elements with a XML text template.33. The computer recording medium of claim 31, wherein code for mappingthe data elements to XML data comprises code for initializing an XMLdata container with the data elements and using the initialized datacontainer to generate XML data, wherein said data container is softwarecode automatically generated from an XML schema.
 34. The computerrecording medium of claim 31, where the GUI program is a web page, andthe information is obtained from an HTTP GET or POST operation.
 35. Acomputer recording medium including computer executable code for mappingan XML message to information that is expected by a GUI program, saidcomputer executable code comprising: code for extracting raw XML datafrom an XML message; code for mapping the XML data to relevant dataelements, the mapping being performed according to predeterminedcriteria; and code for assembling the data elements to information thatis expected by a GUI program.
 36. The computer recording medium of claim35, wherein the code for mapping the XML data to relevant data elementscomprises code for mapping by matching the XML data with an XML texttemplate.
 37. The computer recording medium of claim 35, wherein thecode for mapping the XML data to relevant data elements comprises codefor mapping by a standard XML stylesheet transformation (XSLT).
 38. Thecomputer recording medium of claim 35, wherein the code for mapping theXML data to relevant data elements comprises code for mapping by parsingthe XML data using automatically generated code and extracting dataelements from predetermined code objects.
 39. The computer recordingmedium of claim 35, wherein the GUI program is a web page, and theresult of the mapping is information that can be sent by a HTTP GET orPOST operation.
 40. A computer recording medium including computerexecutable code for automatic provision of a GUI and a two-waycommunication between the said GUI an a XML aware application, saidcomputer executable code comprising: code for generating a GUI programfor XML data; and code for creating at least one translation serverprogram that performs mapping between XML messages to or from the XMLaware application, and information obtained from or destined for the GUIprogram.